﻿using System.Globalization;
using System.IO.Ports;

namespace WindowsFormsGUI.Entidades
{
    public static class ControladorPuertoSerie
    {
        private static SerialPort _puertoSerie;

        public static void EstablecerPuertoSerie(SerialPort puertoSerie)
        {
            _puertoSerie = puertoSerie;
        }

        public static void EnviarPosicion(PosicionEnum posicion)
        {
            var intPosicion = (int) posicion;
            byte[] data = Utilidades.HexStringToByteArray(intPosicion.ToString(CultureInfo.InvariantCulture));
            // Envia los datos binarios al puerto
            _puertoSerie.Write(data, 0, data.Length);
        }

        public static int LeerDatosDesdePuerto()
        {
            var data = string.Empty;

            if (_puertoSerie.IsOpen)
            {
                // Leer todos los datos que esperan en el buffer
                data = _puertoSerie.ReadExisting();
            }

            return Utilidades.HexaStringToInt(data);
        }
    }
}
